package com.beauty.product.service;

import org.springframework.web.multipart.MultipartFile;

import java.nio.file.Path;

/**
 * 文件存储服务接口
 * <p>
 * 定义了文件存储相关的基础操作，包括文件的存储、获取和删除功能。
 * 该接口主要用于处理商品图片的文件系统操作，为图片上传提供底层支持。
 * </p>
 * 
 * @author beauty-dev
 * @version 1.0
 */
public interface FileStorageService {
    
    /**
     * 存储文件
     * <p>
     * 将上传的文件保存到文件系统中，根据配置的存储路径进行存储
     * </p>
     * 
     * @param file 要存储的文件对象
     * @return 返回生成的文件名，通常是唯一的文件名以避免冲突
     */
    String storeFile(MultipartFile file);
    
    /**
     * 获取文件路径
     * <p>
     * 根据文件名获取文件在文件系统中的完整路径
     * </p>
     * 
     * @param fileName 文件名
     * @return 返回文件的完整路径
     */
    Path getFilePath(String fileName);
    
    /**
     * 删除文件
     * <p>
     * 根据文件名从文件系统中删除指定文件
     * </p>
     * 
     * @param fileName 要删除的文件名
     */
    void deleteFile(String fileName);
} 